Various methods are used to couple and cascade network appliances, microprocessors, and other processing elements. In a network using a data packet protocol, the data packets meant for a certain processing element must reach their target efficiently, unhindered by the manner in which the processing elements are coupled together. Sometimes an otherwise desirable configuration for coupling processing elements loses effectiveness because the configuration itself causes a bottleneck for the packet traffic.
Network appliances, for example, have been cascaded successfully in some configurations, subject to the aforementioned loss of effectiveness. For instance, network appliances that offload functions traditionally implemented on a server can be cascaded serially between a switch and a router to accelerate various applications for an entire server farm (multiple servers). However, the performance of the network services provided by these cascaded appliances can suffer if the particular cascade configuration causes a traffic bottleneck for the data packets.
One type of traffic bottleneck occurs when processing elements are cascaded to increase flexibility and performance scaling. The first inline processing element, however, is overworked trying to sort and extract its own data packets from those to be forwarded to subsequent processing elements. These latter processing elements remain relatively inactive because of the bottleneck. Even if the first processing element in the series does not create a dam against free packet flow, in some configurations data packets intended for only one processing element are sent to all, resulting in each device having to waste computing resources to sort through data intended for another device.
A processing element, such as a network appliance, may itself contain multiple processing elements, coupled and cascaded with the same susceptibility to data packet bottlenecks as separate devices cascaded together. The problem of wasting processing power to Who sort through data packets intended for another device remains even when the multiple processing elements are inside a single package.